namespace ext.tree
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <summary>
	/// Provides editor functionality for inline tree node editing. Any valid {@link Ext.form.Field} subclass can be used
	/// as the editor field.
	/// </summary>
	/// <definedin>src\widgets\tree\TreeEditor.js</definedin>
	[ScriptName("TreeEditor")]
	[ScriptNamespace("Ext.tree")]
	[Imported()]
	public partial class TreeEditor : ext.Editor
	{
		
		#region Constructors
		/// <summary>Constructor</summary>
		/// <param name="tree"></param>
		/// <param name="fieldConfig">
		/// Either a prebuilt {@link Ext.form.Field} instance or a Field config object
		/// that will be applied to the default field instance (defaults to a {@link Ext.form.TextField}).
		/// </param>
		/// <param name="config">A TreeEditor config object</param>
		public TreeEditor(ext.tree.TreePanel tree, object fieldConfig, ext.tree.TreeEditor_Configuration config)
		{
		}
		
		/// <summary>Constructor</summary>
		/// <param name="tree"></param>
		/// <param name="fieldConfig">
		/// Either a prebuilt {@link Ext.form.Field} instance or a Field config object
		/// that will be applied to the default field instance (defaults to a {@link Ext.form.TextField}).
		/// </param>
		public TreeEditor(ext.tree.TreePanel tree, object fieldConfig)
		{
		}
		
		/// <summary>Constructor</summary>
		/// <param name="tree"></param>
		public TreeEditor(ext.tree.TreePanel tree)
		{
		}
		
		/// <summary>Constructor</summary>
		public TreeEditor()
		{
		}
		#endregion
		
		#region Fields
		/// <summary>The position to align to (see {@link Ext.Element#alignTo} for more details, defaults to &quot;l-l&quot;).</summary>
		/// <definedin>src\widgets\tree\TreeEditor.js</definedin>
		[ScriptName("alignment")]
		public string Alignment;
		
		/// <summary>True to hide the bound element while the editor is displayed (defaults to false)</summary>
		/// <definedin>src\widgets\tree\TreeEditor.js</definedin>
		[ScriptName("hideEl")]
		public bool HideEl;
		
		/// <summary>CSS class to apply to the editor (defaults to &quot;x-small-editor x-tree-editor&quot;)</summary>
		/// <definedin>src\widgets\tree\TreeEditor.js</definedin>
		[ScriptName("cls")]
		public string Cls;
		
		/// <summary>True to shim the editor if selects/iframes could be displayed beneath it (defaults to false)</summary>
		/// <definedin>src\widgets\tree\TreeEditor.js</definedin>
		[ScriptName("shim")]
		public bool Shim;
		
		/// <summary>
		/// The maximum width in pixels of the editor field (defaults to 250). Note that if the maxWidth would exceed
		/// the containing tree element&apos;s size, it will be automatically limited for you to the container width, taking
		/// scroll and client offsets into account prior to each edit.
		/// </summary>
		/// <definedin>src\widgets\tree\TreeEditor.js</definedin>
		[ScriptName("maxWidth")]
		public System.Number MaxWidth;
		
		/// <summary>
		/// The number of milliseconds between clicks to register a double-click that will trigger
		/// editing on the current node (defaults to 350). If two clicks occur on the same node within this time span,
		/// the editor for the node will display, otherwise it will be processed as a regular click.
		/// </summary>
		/// <definedin>src\widgets\tree\TreeEditor.js</definedin>
		[ScriptName("editDelay")]
		public System.Number EditDelay;
		#endregion
		
		#region Properties
		/// <summary>The {@link Ext.tree.TreeNode TreeNode} this editor is bound to. Read-only.</summary>
		/// <definedin>src\widgets\tree\TreeEditor.js</definedin>
		[ScriptName("editNode")]
		[IntrinsicProperty()]
		public ext.tree.TreeNode EditNode
		{
			get
			{
				throw new System.Exception("Imported - not implemented");
			}
		}
		#endregion
		
		#region Methods
		/// <summary>Edit the text of the passed {@link Ext.tree.TreeNode TreeNode}.</summary>
		/// <definedin>src\widgets\tree\TreeEditor.js</definedin>
		/// <param name="node">The TreeNode to edit. The TreeNode must be {@link Ext.tree.TreeNode#editable editable}.</param>
		[ScriptName("triggerEdit")]
		public void TriggerEdit(ext.tree.TreeNode node)
		{
			throw new System.Exception("Imported - not implemented");
		}
		#endregion
	}
}
